Cartographie dynamique

Author

C. Grasland

Code
# Options générales
library(knitr)
knitr::opts_chunk$set(echo = TRUE, 
                      warning= FALSE, 
                      error=FALSE)

# Selection de packages tidyverse
library(dplyr,quietly = T,warn.conflicts = F,verbose = F)
#library(tidyr,quietly = T,warn.conflicts = F,verbose = F)
#library(ggplot2,quietly = T,warn.conflicts = F,verbose = F)



# packages de cartographie
library(sf,quietly = T, verbose=F)
Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
Code
#library(mapsf)
library(mapview)
The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
which was just loaded, will retire in October 2023.
Please refer to R-spatial evolution reports for details, especially
https://r-spatial.org/r/2023/05/15/evolution4.html.
It may be desirable to make the sf package available;
package maintainers should consider adding sf to Suggests:.
The sp package is now running under evolution status 2
     (status 2 uses the sf package in place of rgdal)
Code
library(RColorBrewer)

Objectif

Statique ou dynamique ?

  • Cartographie statique
    • production d’images fixes de qualité
    • respect strict des règles de la sémiologie graphique
    • choix libre d’une projection adaptée (e.g. EPSG 2154)
    • production de documents imprimés à finalité normative ou scientifiques
  • Cartographie dynamique
    • production d’interfaces consultables dans un navigateur.
    • modification possible de l’échelle et de l’arrière-plan
    • projection imposée par les “tuiles” (EPSG 4326)
    • production de documents interactifs à finalité citoyenne ou exploratoire

Packages R de cartographie dynamique

  • leaflet : la référence
    • Une librairie javascript non liée à un langage (R, Python, html, …)
    • Disponible dans R sous forme de package
    • Développement constant
  • ggmap : l’empire contre attaque
    • des outils cartogaphiques utilisant la syntaxe de tidyverse
    • impose désormais un lien avec Google
  • tmap : une solution hybride
    • permet de passer facilement du mode statique au mode dynamique
  • mapview : l’équivalent de mapsf
    • mis au point par des développeurs allemands
    • facilite l’usage de leaflet
    • en progrès constant (mais instable)

Préparation des données

On charge les fichiers au format sf et on les transforme en projection WGS94 (EPSG=4326), condition indispensable pour ajouter des “tuiles” dynamiques lors des zoom.

Code
map_com <- readRDS("res/map_com.RDS") %>%
              st_transform(4326)
map_iris <- readRDS("res/map_iris.RDS") %>%
              st_transform(4326)
map_logt <- readRDS("res/logt_adr.RDS") %>%
              st_transform(4326)

Cartographie dynamique

Carte par défaut

Mapview produit par défaut une carte dynamique du fichier sf.

Code
mapview(map_logt)

On peut zoomer sur la carte, changer les tuiles et faire apparaître des informations sur un point

Superposition de couches

On peut créer des couches et les aditionner avec ‘+’ :

Code
m1 = mapview(map_iris, zcol = "NOM_COM") 
m2 = mapview(map_logt)
m1+m2

Exemple complet

On va essayer de produire une carte plus complexe du nombre et de l’anncienneté des logements sociaux par adresse

Code
# Carte des communes
map1 <- mapview(map_com, lwd=1, legend= FALSE,
                alpha.regions = 0.1)
# Carte des iris
map2 <- mapview(map_iris,lwd = 0.3, label= "NOM_IRIS",
                legend= FALSE, alpha.regions = 0)
# Carte des logements
map3 <- mapview(map_logt,
                zcol = "anc_moy",
                at = c(1830, 1900,1940, 1970,1980,
                       1990,2000,2010, 2020),
                col.regions = brewer.pal(9, "Spectral"),
                cex= "nb")
map1+map2+map3